/*
 *  Copyright 2009 Mikhail Titov.
 * 
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 * 
 *       http://www.apache.org/licenses/LICENSE-2.0
 * 
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *  under the License.
 */

package org.raven.statdb.impl;

import java.util.Collection;
import org.raven.statdb.query.KeyValues;
import org.raven.statdb.query.QueryResult;

/**
 *
 * @author Mikhail Titov
 */
public class QueryResultImpl implements QueryResult
{
	private final Collection<KeyValues> keyValues;
    private long step;
    private long[] timestamps;
    private String[] statisticNames;

	public QueryResultImpl(Collection<KeyValues> keyValues)
	{
		this.keyValues = keyValues;
	}

    public void setStatisticNames(String[] statisticNames)
    {
        this.statisticNames = statisticNames;
    }

    public String[] getStatisticNames()
    {
        return statisticNames;
    }

	public Collection<KeyValues> getKeyValues()
	{
		return keyValues;
	}

    public long getStep()
    {
        return step;
    }

    public void setStep(long step)
    {
        this.step = step;
    }

    public long[] getTimestamps()
    {
        return timestamps;
    }

    public void setTimestamps(long[] timestamps)
    {
        this.timestamps = timestamps;
    }

    public int getValuesCount()
    {
        return timestamps==null? 0 : timestamps.length;
    }

    public void compressTime()
    {
        long lastTimestamp = timestamps[timestamps.length-1];
        step = lastTimestamp-timestamps[0]+step;
        timestamps = new long[]{lastTimestamp};
    }
}
